package com.example.makerspace.dto;


import com.baomidou.mybatisplus.annotation.TableField;
import com.example.makerspace.mapper.MybatisListHandler;
import com.example.makerspace.model.ProductAttribute;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(value="产品实体类",description="产品实体类")
public class DemandDTO extends BaseDTO{
    @ApiModelProperty(value = "id",required = true)
    private int id;
    @ApiModelProperty(value = "用户名",required = true)
    private String username;
    @ApiModelProperty(value = "公司名称",required = true)
    private String entName;
    @ApiModelProperty(value = "产品名",required = true)
    private String demandName;
    @ApiModelProperty(value = "分类",required = true)
    private String category;
    @ApiModelProperty(value = "主要技术",required = true)
    private List<String> keyword;
    @ApiModelProperty(value = "图片",required = true)
    private List<MultipartFile> picture;
    public  String picturePath;
    @ApiModelProperty(value = "需求描述",required = true)
    private List<String> demandDesc;
    private Integer  isShow;
    @ApiModelProperty(value = "产品概述",required = true)
    private  String productOverview;
    @ApiModelProperty(value = "产品优势",required = true)
    private  String productAdvantages;
    private  String companyInformation;
    private  String companyAddress;
    private  String companyName;
    @ApiModelProperty(value = "成果接受",required = true)
    private  String achievementDecs;
    @ApiModelProperty(value = "公司资质",required = true)
    private  String companyQualifications;
    @ApiModelProperty(value = "应用案例",required = true)
    private  String applicationExamples;
    @ApiModelProperty(value = "成果介绍")
    private  List<MultipartFile> outcomeInformation;
    @ApiModelProperty(value = "产品视频")
    private  MultipartFile productVideos;
    @ApiModelProperty(value = "点赞人", required = true)
    @Field(name="praise_user",type = FieldType.Text, analyzer="ik_max_word")
    private  List<String> praiseUser;
    @ApiModelProperty(value = "点赞数", required = true)
    @Field(name="praise",type = FieldType.Text, analyzer="ik_max_word")
    private Integer praise;
    @ApiModelProperty(value = "收藏数", required = true)
    @Field(name="collection",type = FieldType.Text, analyzer="ik_max_word")
    private  Integer collection;
    @ApiModelProperty(value = "收藏人", required = true)
    @Field(name="collection_user",type = FieldType.Text, analyzer="ik_max_word")
    private  List<String> collectionUser;
    @ApiModelProperty(value = "产品属性",required = true)
    private List<ProductAttribute>productAttribute;
    @ApiModelProperty(value = "是否点赞",required = true)
    private  Integer isAdd;
    @ApiModelProperty(value = "是否收藏",required = true)
    private  Integer isCollection;
    @ApiModelProperty(value = "附件", required = true)
    private  List<MultipartFile> attachment;
    private  Integer isPublic;
    private  Integer isRead;
    private  String feedback;
    private  Integer shareNumbers;
    private  Integer showNumber;
    private  List<String>  shareUser;
    //是否代理
    @ApiModelProperty(value = "是否代理", required = true)
    private  Integer isProxy;
    //代理机构名称
    @ApiModelProperty(value = "代理机构名称", required = true)
    private  String agenciesName;
    //上架产品压缩包
    @ApiModelProperty(value = "上架产品压缩包", required = true)
    private  List<MultipartFile> productPackages;
    private  Integer proxyId;
    private  String reviewer;
}
